﻿var Template_Div = '<iframe id="TB_HideSelect"></iframe><div id="TB_overlay" class="TB_overlayBG"></div>';

var Template_Window = '                                \
                            <div id="TB_window">        \
	                            <div id="TB_titlebar">     \
	                                <div id="tb_title">{0}</div>  \
	                                <div id="tb_cmd">{2}</div>                 \
	                                <div id="tb_button_close">           \
		                                <a href = "#" >关闭</a> \
	                                </div> \
                                </div> \
                            	        \
	                            {1}  \
								<div id="TB_cmdbar">	\
									<hr/>				\
									<span id="tb_button_ok" class="tb_cmdbutton"><a href="#">确定</a></span>	\
									<span id="tb_button_cancel" class="tb_cmdbutton"><a href="#">取消</a></span>	\
								</div>					\
                            </div>  ';
                            
var Template_ShowDlg_Context = '<iframe id="TB_iframeContent" frameborder="0" hspace="0" style="width: {0}px; height: {1}px" src="{2}" > </iframe>';

/* Window 模板
    {0} - 标题          标题栏左边
    {1} - 额外命令      标题栏中间
    {2} - 显示内容      标题栏下面
*/
function sGetWindowTemplateValue(strTitle, strContext, strCmd)
{
    var sTitle = strTitle || "";
    var sContext = strContext || "";
    var sCmd = strCmd || "";
    
    var strValue = Template_Window.format(sTitle, sContext, sCmd);
    
    return strValue;
}


                                               
var _oDlg_ = new CDialogObj();
    
/* 对  象 ：CDialogObj
//功  能 ：
//属  性 ：
//	m_nInitWidth     - 初始化宽度
//	m_nInitHeight    - 初始化高度
//参  数 ：
*/
function CDialogObj()
{
	this.m_nInitWidth   = 600;
	this.m_nInitHeight  = 400;		
}

/* 函  数 ：ShowFile
// 功  能 ：显示文件
// 参  数 ：
//	strFileUrl       - 文件路径，可以带参数
//	oParams          - 可选的参数,形如:
//	                   {
//	                     width:100px,
//	                     heigth:200px,
//	                     title: "hello"
//	                   }
// 返回值 ：
*/
CDialogObj.prototype.ShowFile=function(strFileUrl, oParamObj)
{
	var nWidthDiv  	= (oParamObj && oParamObj["width"])  || this.m_nInitWidth;
	var nHeightDiv 	= (oParamObj && oParamObj["height"]) || this.m_nInitHeight;
	var strTitle 	= (oParamObj && oParamObj["title"])  || "";
	var fnClose     = (oParamObj && oParamObj["fnClose"])|| null; 
	 	
	this.sInitUI_Cover();
	
	//-设置对话框的起始位置-
    var oStartPoint = this.sGetDlgStartPoint(nWidthDiv, nHeightDiv);
	var nLeft = oStartPoint[0];
	var nTop = oStartPoint[1];
	
	//-模板信息-		
	var strTemplate_Context = Template_ShowDlg_Context;	
	var strTemplate_Value = strTemplate_Context.format(nWidthDiv-4, nHeightDiv-20, strFileUrl);	
	var strValue = sGetWindowTemplateValue(strTitle, strTemplate_Value);	
	domAppendHtml(strValue);
	
	//-重新设置样式-
	domSetStyleValue1("TB_window",{top: nTop+"px", left: nLeft+"px", width: nWidthDiv+"px"});		
	

	var	_this_ = this;
	function CloseWin()
	{
		var oFrmDoc = null;
	    var oFrm = domGetElement("TB_iframeContent");
	    if(oFrm!=null)
	    	oFrmDoc = oFrm.contentWindow.document;
		_this_.sShowDlg(false);
	    var rtn = fnClose(_this_, oFrm, oFrm.contentWindow, oFrmDoc);
		if(rtn)
			_oDlg_.Close();
		else
			_this_.sShowDlg(true);
	}
	
	
	function CloseMe()
	{
		_this_.Close();
	}

	domGetElement("tb_button_cancel").onclick = CloseMe;
	domGetElement("tb_button_close").onclick = CloseMe;	
	if(fnClose!=null)
		domGetElement("tb_button_ok").onclick = CloseWin;	
	else
		domGetElement("tb_button_ok").onclick = CloseMe;	
	this.sShowDlg(true);	

	//-装载后初始化信息-
	var fnLoad     = (oParamObj && oParamObj["fnLoad"])|| null; 
	if(fnLoad)
	{
	    var oFrm = domGetElement("TB_iframeContent");
	    if(oFrm!=null)
		{				
			oFrm.onload=function()
			{
				fnLoad(_this_, oFrm, oFrm.contentWindow, oFrm.contentWindow.document);
			};			
		}
	}
}

/* 函  数 ：Close
//功  能 ：关闭对话框
//参  数 ：
//返回值 ：
*/
CDialogObj.prototype.Close=function()
{
	this.sShowDlg(false);
	
	domDeleteElement("TB_window");
	domDeleteElement("TB_HideSelect");
	domDeleteElement("TB_overlay");
}


/* 函  数 ：sInitUI_Cover
//功  能 ：初始化覆盖层信息
//参  数 ：
//返回值 ：
*/
CDialogObj.prototype.sInitUI_Cover=function()
{
	//iframe to hide select elements in ie6
	if (domGetElement("TB_HideSelect") == null) 
	{
		domAppendHtml(Template_Div);
	}
	
	//-设置覆盖层区域-
	var nWidthAll = document.body.scrollWidth;
	var nHeightAll = document.body.scrollHeight;		
	domSetStyleXY("TB_overlay", nWidthAll,nHeightAll);
	domSetStyleXY("TB_HideSelect", nWidthAll, nHeightAll);
	domDeleteElement("TB_window");
	
	document.onkeydown = function(e)
	{ 	
		if(e == null)	// ie 	
			keycode = event.keyCode;		 
		else	// mozilla 
			keycode = e.which;
		
		if(keycode==27)
			_oDlg_.Close();					
	}
}

/* 函  数 ：sShowDlg
//功  能 ：设置是否显示或隐藏对话框
//参  数 ：
//	bVisible         - 
//返回值 ：
*/
CDialogObj.prototype.sShowDlg=function(bVisible)
{
	var str = bVisible ? "visible" : "hidden";
	domSetStyleValue("TB_overlay","visibility", str);
	domSetStyleValue("TB_window", "visibility", str);		
	domSetStyleValue("TB_HideSelect","visibility", str);			
}


/* 函  数 ：sGetDlgStartPoint
// 功  能 ：获取对话框的起始点
// 参  数 ：
//	nWidthDiv        - 对话框宽度
//	nHeightDiv       - 对话框高度
// 返回值 ：[left,top]
*/
CDialogObj.prototype.sGetDlgStartPoint=function(nWidthDiv, nHeightDiv)
{		
	//-设置对话框的起始位置-
	var nLeft = 0;
	var nTop = 0;

		//--对话框的可视长宽

		//--窗口的可视长宽
	var nWidthWindow  = document.body.clientWidth;
	var nHeightWindow = document.body.clientHeight;

	if(nWidthDiv<nWidthWindow)
		nLeft =  (nWidthWindow-nWidthDiv)/2 + document.body.scrollLeft;
	if(nHeightDiv<nHeightWindow)
		nTop =  (nHeightWindow-nHeightDiv)/4 + document.body.scrollTop;
		
	return [nLeft,nTop];
}